package org.crystal.tradecraft.model.binance.enumeration;


/**
 * <table>
 *   <tr>
 *     <th>状态</th><th>描述</th>
 *   </tr>
 *   <tr>
 *     <td>NEW</td><td>该订单被交易引擎接受。</td>
 *   </tr>
 *   <tr>
 *     <td>PENDING_NEW</td><td>该订单处于待处理 (PENDING) 阶段，直到其所属订单组（order list） 中的 working order 完全成交。</td>
 *   </tr>
 *   <tr>
 *     <td>PARTIALLY_FILLED</td><td>部分订单已被成交。</td>
 *   </tr>
 *   <tr>
 *     <td>FILLED</td><td>订单已完全成交。</td>
 *   </tr>
  *   <tr>
 *     <td>CANCELED</td><td>用户撤销了订单。</td>
 *   </tr>
 *   <tr>
 *     <td>PENDING_CANCEL</td><td>撤销中(目前并未使用)</td>
 *   </tr>
 *   <tr>
 *     <td>REJECTED</td><td>订单没有被交易引擎接受，也没被处理。</td>
 *   </tr>
 *   <tr>
 *     <td>EXPIRED</td><td>该订单根据订单类型的规则被取消（例如，没有成交的 LIMIT FOK 订单, LIMIT IOC 或部分成交的 MARKET 订单）或者被交易引擎取消（例如，在强平期间被取消的订单，在交易所维护期间被取消的订单）</td>
 *   </tr>
 *   <tr>
 *     <td>EXPIRED_IN_MATCH</td><td>表示订单由于 STP 而过期。（例如，带有 EXPIRE_TAKER 的订单与账簿上同属相同帐户或相同 tradeGroupId 的现有订单匹配）</td>
 *   </tr>
 * </table>
 * </p>
 */
public enum OrderStatus {
    NEW, // The order has been accepted by the engine.
    PENDING_NEW, // The order is in a pending phase until the working order of an order list has been fully filled.
    PARTIALLY_FILLED, // A part of the order has been filled.
    FILLED, // The order has been completed.
    CANCELED, // The order has been canceled by the user.
    PENDING_CANCEL, // Currently unused
    REJECTED, // The order was not accepted by the engine and not processed.
    EXPIRED, // The order was canceled according to the order type's rules (e.g. LIMIT FOK orders with no fill, LIMIT IOC or MARKET orders that partially fill) or by the exchange, (e.g. orders canceled during liquidation, orders canceled during maintenance)
    EXPIRED_IN_MATCH // The order was expired by the exchange due to STP. (e.g. an order with EXPIRE_TAKER will match with existing orders on the book with the same account or same tradeGroupId)
}
